package 数组;

/**
 * @author 会玩的洋洋
 * https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
 */
public class _26_删除有序数组中的重复项 {

    /**
     * 双指针  通过两个指针对数组进行比较
     * 如果当前数组 与 前一个数组不同，则就让slow指针的值赋值为fast的值 并且slow++
     * 如果相同 则跳过
     * @param nums 目标数组
     * @return int
     */
    public int removeDuplicates(int[] nums) {
        int n = nums.length;
        int slow = 1;
        int fast = 1;

        if (n < 2) {
            return n;
        }

        while (fast < n) {
            if (nums[fast] != nums[fast - 1]) {
                nums[slow] = nums[fast];
                ++slow;
            }
            ++fast;
        }
        return slow;
    }

}
